
package com.hlkj.pay.vo.order.resp.export;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.hlkj.pay.util.excel.OrdersStateConverter;
import com.hlkj.pay.util.excel.TimestampToDateConverter;
import com.hlkj.pay.util.excel.WithdrawOrdersStateConverter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * @author HlpayTeam
 * @date 2024/10/09 11:37
 */
@Data
public class WithdrawOrderFileExport {

    @Schema(description = "商户号")
    @ExcelProperty("商户号")
    @ColumnWidth(20)
    private String sn;

    @Schema(description = "用户名")
    @ExcelProperty("用户名")
    @ColumnWidth(20)
    private String userName;

    @Schema(description = "用户编号")
    @ExcelProperty("用户编号")
    @ColumnWidth(40)
    private String userId;

    @Schema(description = "账户号")
    @ExcelProperty("账户号")
    @ColumnWidth(40)
    private String virtualAccountNo;

    @Schema(description = "所属银行")
    @ExcelProperty("所属银行")
    @ColumnWidth(40)
    private String bankName;

    @Schema(description = "平台订单号")
    @ExcelProperty("平台订单号")
    @ColumnWidth(40)
    private String payOrderNo;

    @Schema(description = "银行订单号")
    @ExcelProperty("银行订单号")
    @ColumnWidth(60)
    private String channelOrderNo;

    @Schema(description = "状态 1=初始化，2=处理中，3=成功，4=失败")
    @ExcelProperty(value = "订单状态", converter = WithdrawOrdersStateConverter.class)
    @ColumnWidth(20)
    private Integer status;

    @Schema(description = "订单金额 单位元")
    @ExcelProperty("订单金额")
    @ColumnWidth(20)
    private String amount;

    @Schema(description = "手续费")
    @ExcelProperty("手续费")
    @ColumnWidth(20)
    private String feeAmount;

    @Schema(description = "创建时间")
    @ExcelProperty(value = "订单创建时间", converter = TimestampToDateConverter.class)
    @ColumnWidth(25)
    private Long createTime;

    @Schema(description = "订单成功时间")
    @ExcelProperty(value = "订单成功时间", converter = TimestampToDateConverter.class)
    @ColumnWidth(25)
    private Long successTime;
    
}
